Этап 3. Настройка ФТП-сервера.
Продолжим настраивать первый сервер. Наступил этап установки ФТП-сервера. Как уже упоминалось в самом начале, фтп-сервис будет предоставляться посредством программного обеспечения ProFTPd. Установим его:
yum -y install proftpd
Затем, для последующего удобства администрирования, установим очень полезную программку webmin:
wget http://prdownloads.sourceforge.net/webadmin/webmin-1.560-1.noarch.rpm
rpm -i webmin-1.560-1.noarch.rpm
Кстати, сразу не забываем открыть порт 10000 на фаерволе. К вышеописанным правилам добавим ещё одно:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10000 -j ACCEPT
и не забываем перезапустить iptables. После чего, webmin будет доступен по адресу:
http://192.168.199.101:10000
Для настройки ФТП-сервера мы будем пользоваться вебмином. И в конфиг /etc/proftpd.conf залезем лишь один раз, чтобы сделать пару небольших правок. Чтобы настройка была более наглядная, я буду настраивать ФТП-сервер в соответствии вот с этой схемой:
Давайте сразу создадим это дерево каталогов в папке /opt/ftp. Как видите, фтп-хранилище я разместил на втором жёстком диске с файловой системой reiser4. После этого, назначим владельца и владеющую группу для всего этого дерева, а также права:
chown -R ftp:ftp /opt/ftp
chmod -R 770 /opt/ftp
Дерево создано. Переходим к настройке ProFTPd. Итак, для начала, давайте сразу залезем в конфиг /etc/proftpd.conf. Примерно, в самом начале конфига, например, после строчки «DefaultServer on», вставим вот такую конструкцию:
LangDefault en_US
LangEngine on
LangPath /usr/share/locale
UseEncoding UTF-8 WINDOWS-1251
Эта конструкция нам нужна для корректного отображения русских символов. Затем, найдём там вот такую строчку:
Umask 022
и поправим её вот так:
Umask 007
Опустимся в нижнюю часть конфигурационного файла и найдём кусок кода, начинающийся тегом <IfDefine ANONYMOUS_FTP> и заканчивающийся тегом </IfDefine>. Вот этот кусок кода удалим совсем.
А всё остальное доделаем через webmin. Заходим в него по вышеуказанному адресу и логинимся под рутом. Слева находим пункт Webmin, а в нём — Webmin Configuration. Для большего удобства, переключим язык интерфейса на русский. Кликаем на значок Language и в поле Display in language выбираем Russian UTF-8 (RU.UTF-8). Жмём Change Language. Чтобы увидеть применённые изменения, обновим страничку вэбмина в браузере. Интерфейс станет русским.
Нам надо зайти в Службы и выбрать Сервер ProFTP. Здесь, давайте пройдёмся по всем значкам общих настроек. Для простоты, я буду приводить скриншоты с настройками каждого пункта. Сразу отмечу, что эти пункты не будут относиться к настройкам, касаемых папки «Гостевая», поскольку она назначена для анонимного доступа. Доступ для анонимуса мы будем настраивать отдельно в самом конце.
Итак, параметры сети:
Здесь я поставил максимальное количество одновременных подключений равное 30, разрешил повторную загрузку на сервер и повторную загрузку с сервера. Если вы обратили внимание, то на скриншоте есть два параметра называемых «разрешить повторную загрузку?». Если же смотреть английский вариант, то эти две настройки будут звучать как: «Allow restarted downloads?» и «Allow restarted uploads?», что и означает повторную загрузку с сервера и на сервер. Также, здесь я выставил тип сервера как отдельный демон и явно указал диапазон портов для пассивного режима. Остальное не трогал. Сохраняем и переходим дальше.
Параметры ведения журнала:
Не менял ничего, поэтому и скриншот не буду приводить.
Файлы и каталоги:
Здесь я задал начальный каталог регистрации, ограничил всех пользователей в домашних каталогах, настроил, чтобы отменённые загрузки удалялись и чтобы владельцы и владеющие группы в создаваемых файлах и каталогах подделывались на пользователя ftp и группу ftp соответственно. Когда мы будем создавать пользователей, то домашний каталог будем ему указывать тот, в котором мы его хотим запереть — смотрим схему. Подделку владельца и владеющей группы я сделал для того, чтобы не возникло путаницы с правами на уровне файловой системы.
Управление доступом:
Не менял ничего.
Разное:
Не менял ничего.
Теперь мы дошли до значка «Аутентификация». Но перед тем, как производить эти настройки, нам надо создать учётные записи в системе, которые будут использоваться для фтп-доступа. А для этого, перейдём в вебмине в пункт «Система» и выберем подпункт «Пользователи и группы». Здесь мы создадим учётные записи. Жмём на надпись «создать нового пользователя» и создаём пользователя gorod1:
Заполняем поля «Имя», «Настоящее имя» (хотя оно и не обязательно), вводим путь к домашнему каталогу. Поскольку, мы хотим, чтоб этот пользователь был заперт в папке «города», то эту папку и указываем домашним каталогом. Оболочку пользователю ставим /bin/bash. «Вход запрещён» означает, что этот пользователь не сможет войти в саму операционную систему, как, например пользователь admin. Вносим пользователя в группу ftp и отказываемся от создания домашнего каталога и от копирования туда файлов. Жмём кнопку «создать».
Аналогичным образом создаём пользователя gorod2 и 1c. А вот что касается пользователя admin, то здесь можно пойти двумя путями: использовать уже существующую в системе учётную запись admin или вместо админа создать другую учётную запись аналогично как мы это сделали выше. Я же решил использовать уже существующую учётную запись admin. Найдём его в списке пользователей и кое-что подправим:
Здесь я изменил домашний каталог на корень фтп-шного дерева, заменил основную группу на ftp и дополнительно внёс его обратно в группу admin, которая была основной.
Вот теперь, пора вернуться к настройкам ProFTPd и кликнуть на значок Аутентификация:
Здесь мы запрещаем регистрацию для рута и запрещаем регистрацию пользователям из списка /etc/ftpusers. И самое главное: мы именно здесь добавили наши, только что созданные, учётные записи для доступа к ФТП-серверу. И здесь же, мы назначаем каждой учётной записи пароль доступа к нашему ФТП. Идём далее.
Файл опций для каждого каталога:
Вот здесь мы выбираем каталог, для которого хотим ограничить доступ и нажимаем кнопку «Создание файла параметров». После чего увидим следующее:
Здесь нас интересует только значок «user permissions», однако если же прогуляться по остальным настройкам, то мы увидим, что тут, конкретно для этого каталога, можно задавать свои параметры «Разрешить повторную загрузку?», «Удалять отмененные загрузки?», «Устанавливаемая группа для закачанных файлов» и прочие, которые мы уже видели в глобальных настройках ProFTPd. Если здесь эти настройки не трогать, то они останутся унаследованы от глобальных параметров ProFTPd.
Итак, заходим в интересующий нас «user permissions»:
и выставляем права тем пользователям, которые будут сюда иметь доступ: admin и gorod1. Для остальных фтп-пользователей эта папка даже видна не будет. Да и остальные, кроме gorod2, сюда и попадут вовсе, т.к. будут ограничены в своих каталогах. Сохраняем и аналогичным образом назначаем доступ остальным папкам в соответствии со схемой.
Вернёмся снова к глобальным настройкам. Там нас интересует последний значок под названием «Запрещенные пользователи FTP»:
В этот список мы прописываем тех пользователей операционной системы, которым доступ в качестве фтп будет невозможен. Сейчас я туда добавил двух: zimbra и postfix.
Ну а сейчас, как и говорил выше, приступим к настройкам для анонимуса.
Наверно, вы уже обратили внимание, что помимо общих настроек для ProFTpd, в вебмине есть ещё и настройки под названием «Виртуальные серверы», в которых мы видим значок с названием «Сервер по умолчанию». Вот на него и кликнем. Нам откроются параметры виртуального сервера с такими же значками, как и в общих настройках. Но в них нас интересует только один: Настройка анонимного FTP. Кликнем на него:
Выберем ограничение каталога, в котором запрём анонимуса и нажмём кнопку «создать». После этого нам снова откроется страничка с привычными значками, но называться она уже будет «Параметры анонимного FTP». Здесь мы тоже пройдёмся по некоторым из них.
Параметры сети:
Здесь я задал максимальное количество анонимных подключений всего и максимальное количество подключений с одного узла. А также, сообщения выдаваемые при превышении этих подключений.
Аутентификация:
Здесь я запретил регистрацию для root, разрешил регистрацию пользователям только с псевдоименами (а у нас это только anonymous). Поставил крыж, чтобы не требовать пароль для анонимной регистрации и разрешил регистрацию пользователям с оболочкой /sbin/nologin.
Теперь, нажмём на надпись «вернуться в основное меню» и кликнем на значок «Файл опций для каждого каталога». Здесь зададим права на нашу гостевую папку:
Здесь нам надо сделать так, чтоб полный доступ имел только админ. Для этого, админу даём все права с помощью вэб-интерфейса, а в теле самого файла кое-что прописываем вручную. То, что прописать вручную, я обвёл красным. Таким образом, всем будет только чтение, а админу — полный доступ.
Помимо всех этих настроек в вэбмине, нужно выполнить ещё один момент: найдём файл /etc/sysconfig/proftpd, найдём в нём строчку:
PROFTPD_OPTIONS=""
И преобразуем её вот в такой вид:
PROFTPD_OPTIONS="-DANONYMOUS_FTP"
Сохраним изменения. Настройка ProFTPd закончена. Можно запускать этот сервис либо из-под вебмина, либо введя команду:
service proftpd start
Однако, попробовав зайти на фтп-сервер по адресу ftp://192.168.199.101 мы получим ошибку доступа. Это связано с тем, что в iptables нужно, во-первых, открыть порт 21, а во-вторых, надо активировать модуль nf_conntrack_ftp. Чтобы это сделать, надо в файле /etc/sysconfig/iptables прописать правило:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
а в файле /etc/sysconfig/iptables-config найти строчку:
IPTABLES_MODULES=""
и привести её вот к такому виду:
IPTABLES_MODULES="nf_conntrack_ftp"
После чего, перезапускаем iptables. Теперь, можно заходить на наш фтп и проверять, всё ли правильно настроено.
Не забудем включить наш ProFTPd в автозагрузку. Введём команду ntsysv и в меню отметим его звёздочкой.
После того, как мы убедились, что ФТП-сервер и доступ к нему работают как надо, приступим к установке OpenFire.